package com.todo.content.infrastructure.repository;


import com.todo.common.common.entity.response.page.PageResult;
import com.todo.content.infrastructure.entity.condition.TopicRelationCondition;
import com.todo.content.infrastructure.entity.po.ContentTopicRelationPO;

import java.util.List;

/**
 * (ContentTopicRelation)表服务接口
 *
 * @author zhangwenxiang
 * @since 2024-03-04 21:10:04
 */
public interface ContentTopicRelationRepository {

    /**
     * 新增话题关联信息
     *
     * @param contentTopicRelationPO
     * @return
     */
    Boolean insertContentTopicRelationPO(ContentTopicRelationPO contentTopicRelationPO);

    /**
     * 根据主键删除话题关联
     *
     * @param id
     * @return
     */
    Boolean removeContentTopicRelationPOById(Long id);

    /**
     * 根据主键查询话题关联信息
     *
     * @param id
     * @return
     */
    ContentTopicRelationPO queryContentTopicRelationPOById(Long id);

    /**
     * 根据内容Id查询话题关联列表
     *
     * @param contentId
     * @return
     */
    List<ContentTopicRelationPO> queryContentTopicRelationPOByContentId(Long contentId);

    /**
     * 根据内容Id删除关联列表
     *
     * @param contentId
     * @return
     */
    Boolean removeTopicRelationByContentId(Long contentId);

    /**
     * 批量新增内容关联数据
     *
     * @param collect
     * @return
     */
    Boolean batchInsertRelation(List<ContentTopicRelationPO> collect);

    /**
     * 多条件查询内容关联列表
     *
     * @param condition
     * @return
     */
    PageResult<ContentTopicRelationPO> queryTopicRelationByPage(TopicRelationCondition condition);

    /**
     * 多条件查询内容关联数量
     *
     * @param condition
     * @return
     */
    Long queryCountByCondition(TopicRelationCondition condition);
}
